<?php

class AdmListarPago extends TPage {
  public function onLoad($param) {
    parent::onLoad($param);
    if (!$this->IsPostBack) {
      $this->actualizarIntefaz();
    }
  }

  private function actualizarIntefaz() {
    $arg = $this->Request["a"];
    $arr = $this->obtenerDatos();
    $this->iniciarControles($arr);
    $this->mostrarMensaje();
  }

  private function obtenerDatos() {
    $oUsuario = new Usuario();
    $oUsuarioBLL = new UsuarioBLL();
    $oUsuario->setIdTipoUsuario(tipo_usuario::ESCORT);
    $arr = $oUsuarioBLL->listarUsuariosPago($oUsuario);
    return $arr;
  }

  private function iniciarControles($arr) {
    if (count($arr) > 0) {
      $this->pnlGrilla->Visible = true;
      $this->pnlSinRegistros->Visible = false;
      $this->dgPrincipal->DataSource = $arr;
      $this->dgPrincipal->dataBind();
    } else {
      $this->pnlGrilla->Visible = false;
      $this->pnlSinRegistros->Visible = true;
    }

    $this->obtenerPagoMesActual();
    $this->obtenerPagoTotal();
  }

  private function mostrarMensaje(){
    $arg = $this->Request["a"];
    if (!Util::isNullOrEmpty($arg)) {
      $tipoMensaje = Util::desencriptarUrl($arg, "tipoMensaje");
      $mensaje = Util::desencriptarUrl($arg, "mensaje");

      if(!Util::isNullOrEmpty($mensaje)){
        Util::mostrarMsj($this->Page, "da-ex-val-error", $mensaje, $tipoMensaje);
      }
    }

  }

  private function obtenerPagoMesActual() {
    try {
      $pagosRealizados = 0;
      $comisiones = 0;
      $ganancia = 0;

      $oPagoBLL = new PagoBLL();
      $arr = $oPagoBLL->obtenerPagosMesActual();
      if (count($arr) > 0) {
        $row = $arr[0];
        $pagosRealizados = $row["pagosRealizados"];
        $comisiones = $row["comisiones"];
        $ganancia = $pagosRealizados - $comisiones;
      }
    } catch (Exception $e) {
      $pagosRealizados = 0;
      $comisiones = 0;
      $ganancia = 0;
    }

    $this->ltMesAnoActual->Text = Util::getNombreMesAnoActual();
    $this->ltMesAnoActualPagosRealizados->Text = "$".Util::formatearConSeparadorMiles($pagosRealizados);
    $this->ltMesAnoActualComisiones->Text = "$".Util::formatearConSeparadorMiles($comisiones);
    $this->ltMesAnoActualGanancias->Text = "$".Util::formatearConSeparadorMiles($ganancia);
  }

  private function obtenerPagoTotal() {
    try {
      $pagosRealizados = 0;
      $comisiones = 0;
      $ganancia = 0;

      $oPagoBLL = new PagoBLL();
      $arr = $oPagoBLL->obtenerPagosHistorico();
      if (count($arr) > 0) {
        $row = $arr[0];
        $pagosRealizados = $row["pagosRealizados"];
        $comisiones = $row["comisiones"];
        $ganancia = $pagosRealizados - $comisiones;
      }
    } catch (Exception $e) {
      $pagosRealizados = 0;
      $comisiones = 0;
      $ganancia = 0;
    }

    $this->ltHistoricoPagosRealizados->Text = "$".Util::formatearConSeparadorMiles($pagosRealizados);
    $this->ltHistoricoComisiones->Text = "$".Util::formatearConSeparadorMiles($comisiones);
    $this->ltHistoricoGanancias->Text = "$".Util::formatearConSeparadorMiles($ganancia);
  }


  public function onDataBoundDataGrid($sender, $param) {
    $item = $param->Item;

    if ($item->ItemType === 'Item' || $item->ItemType === 'AlternatingItem') {
      $txtId = $item->findControl("txtId");
      $txtMesesAtraso = $item->findControl("txtMesesAtraso");
      $txtFechaUltimoPago = $item->findControl("txtFechaUltimoPago");
      $txtMontoUltimoPago = $item->findControl("txtMontoUltimoPago");
      $lblEstadoPago = $item->findControl("lblEstadoPago");
      $lblOpcion = $item->findControl("lblOpcion");
      $lblFechaUltimoPago = $item->findControl("lblFechaUltimoPago");

      if (Util::isNullOrEmpty($txtFechaUltimoPago->Value)){
        $lblFechaUltimoPago->Text = "";
      } else {
        $lblFechaUltimoPago->Text = Util::fechaDateTimeANormal($txtFechaUltimoPago->Value).": $".Util::formatearConSeparadorMiles($txtMontoUltimoPago->Value);
      }

      $mesesAtraso = $txtMesesAtraso->Value;
      if($mesesAtraso > "1" || $mesesAtraso == "") {
        if ($mesesAtraso == "") { $mesesAtraso = "sin pagos"; } else { $mesesAtraso = $mesesAtraso." meses"; }
        $mesesAtraso = "ATRASADO (".$mesesAtraso.")";
      } else {
        $mesesAtraso = "AL DIA";
      }
      $lblEstadoPago->Text = $mesesAtraso;

      $id = $txtId->Value;
      $arg = Util::encriptarUrl(array("id" => $id));
      $lblOpcion->Text = "<a href=\"index.php?page=Usuario.AdmRegistroPago&a=".$arg."\" title=\"Editar\"><i class=\"icol-pencil\"></i></a>&nbsp;&nbsp;";

      //limpia controles
      $txtId->Value = "";
      $txtMesesAtraso->Value = "";
      $txtFechaUltimoPago->Value = "";
      $txtMontoUltimoPago->Value = "";
    }
  }
}
?>
